/*
 * Tema.h - Grupo 5 - Prog. Avanzada 2011
 *
 *  Javier Dominguez - 4.901.161-6
 *  Marcelo Parada - 1.977.094-9
 *  Rodrigo Ruiz - 4.481.611-2
 *  Maximiliano Silvera - 4.106.938-6
 */

#ifndef TEMA_H_
#define TEMA_H_

#include <string>
#include "Usuario.h"
#include "Elemento.h"
#include "../util/Tiempo.h"
#include "Artista.h"
#include "../util/genCollections/ColConcrete.h"

using namespace std;

class Tema: public Elemento
{
private:
	int id;

	string titulo;

	Tiempo *tiempo;

	ColConcrete<Artista*> *artistas;

public:
	static const int TIPO_ELEMENTO = 1;

    Tema();

    virtual int tipoTema() = 0;

    virtual int tipoElemento();

    virtual bool same(ICollectible *icollectible);

    virtual string toString() = 0;

	int getId() const;

	void setId(int id);

	Tiempo *getTiempo() const;

	void setTiempo(Tiempo *tiempo);

	string getTitulo() const;

	void setTitulo(string titulo);

	ColConcrete<Artista*> *getArtistas() const;

	void setArtistas(ColConcrete<Artista*> *artistas);

	virtual ~Tema();
};

#endif /* TEMA_H_ */
